package com.zut.subject.common.entity;
import lombok.Data;

import java.util.Collections;
import java.util.List;

/**
 * 分页返回的实体
 */
@Data
public class PageResult<T> {
    private Integer pageNo;
    private Integer pageSize;
    private Integer totalPages;
    private Integer total;
    //Collections.emptyList这个方法主要目的就是返回一个不可变的列表，
    // 使用这个方法作为返回值就不需要再创建一个新对象，
    // 可以减少内存开销。并且返回一个size为0的List，
    // 调用者不需要校验返回值是否为null，所以建议使用这个方法返回可能为空的List
    private List<T> result= Collections.emptyList();
    private Integer start;
    private Integer end;

    //通过传入的数据列表，修改对象内的必要数据
    public void setRecord(List<T> result){
        this.result=result;
        this.total=result.size();
        if (pageSize>0){
        this.totalPages=(total/pageSize)+(total%pageSize==0?0:1);}
        else {this.totalPages=0;}

        this.start=(pageNo-1)*pageSize+1;
        this.end=this.start-1+pageSize;
    }
    public Integer setPageNo(Integer pageNo){

        return this.pageNo=pageNo;
    }
    public Integer setPageSize(Integer pageSize){

        return this.pageSize=pageSize;
    }






}
